home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.text.html;
-
- import java.awt.Color;
- import java.awt.Font;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.Reader;
- import java.io.StringReader;
- import java.net.URL;
- import java.util.Enumeration;
- import java.util.Hashtable;
- import java.util.Vector;
- import javax.swing.border.Border;
- import javax.swing.border.EmptyBorder;
- import javax.swing.text.AttributeSet;
- import javax.swing.text.Element;
- import javax.swing.text.MutableAttributeSet;
- import javax.swing.text.SimpleAttributeSet;
- import javax.swing.text.Style;
- import javax.swing.text.StyleConstants;
- import javax.swing.text.StyleContext;
- import javax.swing.text.View;
- import javax.swing.text.html.HTML.Attribute;
- import javax.swing.text.html.HTML.Tag;
-
- public class StyleSheet extends StyleContext {
- static final Border noBorder = new EmptyBorder(0, 0, 0, 0);
- static final int DEFAULT_FONT_SIZE = 3;
- private CSS css;
- private Hashtable selectorMapping = new Hashtable();
- private Hashtable resolvedStyles = new Hashtable();
- private Vector linkedStyleSheets;
- private URL base;
- static final SheetAttribute SPECIFICITY = new SheetAttribute("specificity", false);
- static final SheetAttribute RULE = new SheetAttribute("rule", false);
- static final SheetAttribute WEIGHT = new SheetAttribute("rule-weight", false);
- static final SheetAttribute BOX_PAINTER = new SheetAttribute("box-painter", true);
- static final SheetAttribute LIST_PAINTER = new SheetAttribute("list-painter", true);
-
- static {
- StyleContext.registerStaticAttributeKey(RULE);
- StyleContext.registerStaticAttributeKey(WEIGHT);
- StyleContext.registerStaticAttributeKey(BOX_PAINTER);
- StyleContext.registerStaticAttributeKey(LIST_PAINTER);
- }
-
- public StyleSheet() {
- if (this.css == null) {
- this.css = new CSS();
- }
-
- }
-
- private String _cleanSelectorString(String var1) {
- SearchBuffer var2 = javax.swing.text.html.StyleSheet.SearchBuffer.obtainSearchBuffer();
- StringBuffer var3 = var2.getStringBuffer();
- boolean var4 = true;
- int var5 = 0;
- char[] var6 = var1.toCharArray();
- int var7 = var6.length;
- Object var8 = null;
-
- try {
- for(int var11 = 0; var11 < var7; ++var11) {
- switch (var6[var11]) {
- case '\t':
- case '\n':
- case '\r':
- if (!var4) {
- var4 = true;
- if (var5 < var11) {
- var3.append(var6, var5, var11 - var5);
- var3.append(' ');
- }
- }
-
- var5 = var11 + 1;
- break;
- case ' ':
- if (!var4) {
- var4 = true;
- if (var5 < var11) {
- var3.append(var6, var5, 1 + var11 - var5);
- }
- }
-
- var5 = var11 + 1;
- break;
- default:
- var4 = false;
- }
- }
-
- if (var4 && var3.length() > 0) {
- var3.setLength(var3.length() - 1);
- } else if (var5 < var7) {
- var3.append(var6, var5, var7 - var5);
- }
-
- var14 = var3.toString();
- } finally {
- javax.swing.text.html.StyleSheet.SearchBuffer.releaseSearchBuffer(var2);
- }
-
- return var14;
- }
-
- // $FF: synthetic method
- static CSS access$0(StyleSheet var0) {
- return var0.css;
- }
-
- public AttributeSet addAttribute(AttributeSet var1, Object var2, Object var3) {
- if (this.css == null) {
- this.css = new CSS();
- }
-
- if (var2 instanceof StyleConstants) {
- Object var4 = this.css.styleConstantsValueToCSSValue((StyleConstants)var2, var3);
- if (var4 != null) {
- CSS.Attribute var5 = this.css.styleConstantsKeyToCSSKey((StyleConstants)var2);
- if (var5 != null) {
- return super.addAttribute(var1, var5, var4);
- }
- }
- }
-
- return super.addAttribute(var1, var2, var3);
- }
-
- public AttributeSet addAttributes(AttributeSet var1, AttributeSet var2) {
- return super.addAttributes(var1, this.convertAttributeSet(var2));
- }
-
- boolean addCSSAttribute(MutableAttributeSet var1, CSS.Attribute var2, String var3) {
- Object var4 = this.css.getInternalCSSValue(var2, var3);
- if (var4 != null) {
- var1.addAttribute(var2, var4);
- return true;
- } else {
- return false;
- }
- }
-
- boolean addCSSAttributeFromHTML(MutableAttributeSet var1, CSS.Attribute var2, String var3) {
- Object var4 = this.css.getCssValue(var2, var3);
- if (var4 != null) {
- var1.addAttribute(var2, var4);
- return true;
- } else {
- return false;
- }
- }
-
- public void addRule(String var1) {
- if (var1 != null) {
- CssParser var2 = new CssParser(this);
-
- try {
- var2.parse(this.getBase(), new StringReader(var1), false, false);
- } catch (IOException var3) {
- }
- }
-
- }
-
- void addRule(String[] var1, AttributeSet var2, boolean var3) {
- int var4 = var1.length;
- StringBuffer var5 = new StringBuffer();
- var5.append(var1[0]);
-
- for(int var6 = 1; var6 < var4; ++var6) {
- var5.append(' ');
- var5.append(var1[var6]);
- }
-
- String var7 = var5.toString();
- Style var8 = ((StyleContext)this).getStyle(var7);
- if (var8 == null) {
- Style var9 = ((StyleContext)this).addStyle(var7, (Style)null);
- synchronized(this){}
-
- try {
- Object var12 = this.getRootSelectorMapping();
-
- for(int var13 = var4 - 1; var13 >= 0; --var13) {
- var12 = this.getSelectorMapping(var12, var1[var13], true);
- }
-
- var8 = this.getMappingStyle(var12);
- if (var8 == null) {
- var8 = this.createStyleForSelector(var7, var12, var9);
- this.refreshResolvedRules(var7, var1, var8, this.getSpecificity(var12));
- }
- } catch (Throwable var15) {
- throw var15;
- }
- }
-
- if (var3) {
- var8 = this.getLinkedStyle(var8);
- }
-
- var8.addAttributes(var2);
- }
-
- private void addSortedStyle(Object var1, Vector var2) {
- int var3 = var2.size();
- if (var3 > 0) {
- int var4 = this.getSpecificity(var1);
-
- for(int var5 = 0; var5 < var3; ++var5) {
- if (var4 >= this.getSpecificity(var2.elementAt(var5))) {
- var2.insertElementAt(var1, var5);
- return;
- }
- }
- }
-
- var2.addElement(var1);
- }
-
- synchronized void addStyleSheet(StyleSheet var1) {
- if (this.linkedStyleSheets == null) {
- this.linkedStyleSheets = new Vector();
- }
-
- if (!this.linkedStyleSheets.contains(var1)) {
- this.linkedStyleSheets.insertElementAt(var1, 0);
- this.linkStyleSheetAt(var1, 0);
- }
-
- }
-
- String cleanSelectorString(String var1) {
- boolean var2 = true;
- int var3 = 0;
-
- for(int var4 = var1.length(); var3 < var4; ++var3) {
- switch (var1.charAt(var3)) {
- case '\t':
- case '\n':
- case '\r':
- return this._cleanSelectorString(var1);
- case ' ':
- if (var2) {
- return this._cleanSelectorString(var1);
- }
-
- var2 = true;
- break;
- default:
- var2 = false;
- }
- }
-
- if (var2) {
- return this._cleanSelectorString(var1);
- } else {
- return var1;
- }
- }
-
- AttributeSet convertAttributeSet(AttributeSet var1) {
- if (!(var1 instanceof LargeConversionSet) && !(var1 instanceof SmallConversionSet)) {
- Enumeration var2 = var1.getAttributeNames();
-
- while(var2.hasMoreElements()) {
- Object var3 = var2.nextElement();
- if (var3 instanceof StyleConstants) {
- LargeConversionSet var4 = new LargeConversionSet(this);
- Enumeration var5 = var1.getAttributeNames();
-
- while(var5.hasMoreElements()) {
- Object var6 = var5.nextElement();
- Object var7 = null;
- if (var6 instanceof StyleConstants) {
- CSS.Attribute var8 = this.css.styleConstantsKeyToCSSKey((StyleConstants)var6);
- if (var8 != null) {
- Object var9 = var1.getAttribute(var6);
- var7 = this.css.styleConstantsValueToCSSValue((StyleConstants)var6, var9);
- if (var7 != null) {
- var4.addAttribute(var8, var7);
- }
- }
- }
-
- if (var7 == null) {
- var4.addAttribute(var6, var1.getAttribute(var6));
- }
- }
-
- return var4;
- }
- }
-
- return var1;
- } else {
- return var1;
- }
- }
-
- protected MutableAttributeSet createLargeAttributeSet(AttributeSet var1) {
- return new LargeConversionSet(this, var1);
- }
-
- private Style createResolvedStyle(String var1) {
- SearchBuffer var2 = javax.swing.text.html.StyleSheet.SearchBuffer.obtainSearchBuffer();
- Vector var3 = var2.getVector();
-
- Style var4;
- try {
- int var8 = 0;
- int var9 = 0;
- int var10 = 0;
- int var11 = 0;
-
- for(int var12 = var1.length(); var11 < var12; var11 = var9 + 1) {
- if (var8 == var11) {
- var8 = var1.indexOf(46, var11);
- }
-
- if (var10 == var11) {
- var10 = var1.indexOf(35, var11);
- }
-
- var9 = var1.indexOf(32, var11);
- if (var9 == -1) {
- var9 = var12;
- }
-
- if (var8 != -1 && var10 != -1 && var8 < var9 && var10 < var9) {
- if (var10 < var8) {
- if (var11 == var10) {
- var3.addElement("");
- } else {
- var3.addElement(var1.substring(var11, var10));
- }
-
- if (var8 + 1 < var9) {
- var3.addElement(var1.substring(var8 + 1, var9));
- } else {
- var3.addElement((Object)null);
- }
-
- if (var10 + 1 == var8) {
- var3.addElement((Object)null);
- } else {
- var3.addElement(var1.substring(var10 + 1, var8));
- }
- } else if (var10 < var9) {
- if (var11 == var8) {
- var3.addElement("");
- } else {
- var3.addElement(var1.substring(var11, var8));
- }
-
- if (var8 + 1 < var10) {
- var3.addElement(var1.substring(var8 + 1, var10));
- } else {
- var3.addElement((Object)null);
- }
-
- if (var10 + 1 == var9) {
- var3.addElement((Object)null);
- } else {
- var3.addElement(var1.substring(var10 + 1, var9));
- }
- }
-
- var8 = var10 = var9 + 1;
- } else if (var8 != -1 && var8 < var9) {
- if (var8 == var11) {
- var3.addElement("");
- } else {
- var3.addElement(var1.substring(var11, var8));
- }
-
- if (var8 + 1 == var9) {
- var3.addElement((Object)null);
- } else {
- var3.addElement(var1.substring(var8 + 1, var9));
- }
-
- var3.addElement((Object)null);
- var8 = var9 + 1;
- } else if (var10 != -1 && var10 < var9) {
- if (var10 == var11) {
- var3.addElement("");
- } else {
- var3.addElement(var1.substring(var11, var10));
- }
-
- var3.addElement((Object)null);
- if (var10 + 1 == var9) {
- var3.addElement((Object)null);
- } else {
- var3.addElement(var1.substring(var10 + 1, var9));
- }
-
- var10 = var9 + 1;
- } else {
- var3.addElement(var1.substring(var11, var9));
- var3.addElement((Object)null);
- var3.addElement((Object)null);
- }
- }
-
- int var13 = var3.size();
- int var14 = var13 / 3;
- String[] var15 = new String[var14];
- String[] var16 = new String[var14];
- String[] var17 = new String[var14];
- int var18 = 0;
-
- for(int var19 = var13 - 3; var18 < var14; var19 -= 3) {
- var15[var18] = (String)var3.elementAt(var19);
- var16[var18] = (String)var3.elementAt(var19 + 1);
- var17[var18] = (String)var3.elementAt(var19 + 2);
- ++var18;
- }
-
- var4 = this.createResolvedStyle(var1, var15, var16, var17);
- } finally {
- javax.swing.text.html.StyleSheet.SearchBuffer.releaseSearchBuffer(var2);
- }
-
- return var4;
- }
-
- private Style createResolvedStyle(String var1, Vector var2, HTML.Tag var3) {
- int var4 = var2.size();
- if (var3 == Tag.IMPLIED) {
- var3 = Tag.P;
- }
-
- String[] var5 = new String[var4];
- String[] var6 = new String[var4];
- String[] var7 = new String[var4];
-
- for(int var8 = 0; var8 < var4; ++var8) {
- Element var9 = (Element)var2.elementAt(var8);
- AttributeSet var10 = var9.getAttributes();
- if (var10 != null) {
- HTML.Tag var11 = (HTML.Tag)var10.getAttribute(StyleConstants.NameAttribute);
- if (var11 == Tag.IMPLIED) {
- var11 = Tag.P;
- }
-
- if (var11 != null) {
- var5[var8] = var11.toString();
- } else {
- var5[var8] = null;
- }
-
- if (var10.isDefined(Attribute.CLASS)) {
- var7[var8] = var10.getAttribute(Attribute.CLASS).toString();
- } else {
- var7[var8] = null;
- }
-
- if (var10.isDefined(Attribute.ID)) {
- var6[var8] = var10.getAttribute(Attribute.ID).toString();
- } else {
- var6[var8] = null;
- }
- } else {
- var5[var8] = var6[var8] = var7[var8] = null;
- }
- }
-
- var5[0] = var3.toString();
- return this.createResolvedStyle(var1, var5, var6, var7);
- }
-
- private synchronized Style createResolvedStyle(String var1, String[] var2, String[] var3, String[] var4) {
- SearchBuffer var5 = javax.swing.text.html.StyleSheet.SearchBuffer.obtainSearchBuffer();
- Vector var6 = var5.getVector();
- Hashtable var7 = var5.getHashtable();
-
- ResolvedStyle var8;
- try {
- Object var11 = this.getRootSelectorMapping();
- int var12 = var2.length;
- String var13 = var2[0];
- Object var14 = this.getSelectorMapping(var11, var13, false);
- if (var14 != null) {
- this.getStyles(var14, var6, var2, var3, var4, 1, var12, var7);
- }
-
- if (var4[0] != null) {
- String var15 = var4[0];
- var14 = this.getSelectorMapping(var11, var13 + "." + var15, false);
- if (var14 != null) {
- this.getStyles(var14, var6, var2, var3, var4, 1, var12, var7);
- }
-
- var14 = this.getSelectorMapping(var11, "." + var15, false);
- if (var14 != null) {
- this.getStyles(var14, var6, var2, var3, var4, 1, var12, var7);
- }
- }
-
- if (var3[0] != null) {
- String var27 = var3[0];
- var14 = this.getSelectorMapping(var11, var13 + "#" + var27, false);
- if (var14 != null) {
- this.getStyles(var14, var6, var2, var3, var4, 1, var12, var7);
- }
-
- var14 = this.getSelectorMapping(var11, "#" + var27, false);
- if (var14 != null) {
- this.getStyles(var14, var6, var2, var3, var4, 1, var12, var7);
- }
- }
-
- int var28 = this.linkedStyleSheets != null ? this.linkedStyleSheets.size() : 0;
- int var16 = var6.size();
- AttributeSet[] var17 = new AttributeSet[var16 + var28];
-
- for(int var18 = 0; var18 < var16; ++var18) {
- var17[var18] = this.getMappingStyle(var6.elementAt(var18));
- }
-
- for(int var19 = 0; var19 < var28; ++var19) {
- Style var20 = ((StyleSheet)this.linkedStyleSheets.elementAt(var19)).getRule(var1);
- if (var20 == null) {
- var17[var19 + var16] = SimpleAttributeSet.EMPTY;
- } else {
- var17[var19 + var16] = var20;
- }
- }
-
- ResolvedStyle var29 = new ResolvedStyle(var1, var17, var16);
- this.resolvedStyles.put(var1, var29);
- var8 = var29;
- } finally {
- javax.swing.text.html.StyleSheet.SearchBuffer.releaseSearchBuffer(var5);
- }
-
- return var8;
- }
-
- protected StyleContext.SmallAttributeSet createSmallAttributeSet(AttributeSet var1) {
- return new SmallConversionSet(this, var1);
- }
-
- private synchronized Style createStyleForSelector(String var1, Object var2, Style var3) {
- Style var4 = (Style)((Hashtable)var2).get(RULE);
- if (var4 == null) {
- var4 = var3;
- ((Hashtable)var2).put(RULE, var3);
- }
-
- return var4;
- }
-
- public Color getBackground(AttributeSet var1) {
- return this.css.getColor(var1, javax.swing.text.html.CSS.Attribute.BACKGROUND_COLOR);
- }
-
- URL getBase() {
- return this.base;
- }
-
- public BoxPainter getBoxPainter(AttributeSet var1) {
- return new BoxPainter(var1, this.css, this);
- }
-
- public AttributeSet getDeclaration(String var1) {
- if (var1 == null) {
- return SimpleAttributeSet.EMPTY;
- } else {
- CssParser var2 = new CssParser(this);
- return var2.parseDeclaration(var1);
- }
- }
-
- public Font getFont(AttributeSet var1) {
- return this.css.getFont(this, var1, 12);
- }
-
- public Color getForeground(AttributeSet var1) {
- Color var2 = this.css.getColor(var1, javax.swing.text.html.CSS.Attribute.COLOR);
- return var2 == null ? Color.black : var2;
- }
-
- public static int getIndexOfSize(float var0) {
- return CSS.getIndexOfSize(var0);
- }
-
- private Style getLinkedStyle(Style var1) {
- Style var2 = (Style)var1.getResolveParent();
- if (var2 == null) {
- var2 = ((StyleContext)this).addStyle((String)null, (Style)null);
- var1.setResolveParent(var2);
- }
-
- return var2;
- }
-
- public ListPainter getListPainter(AttributeSet var1) {
- return new ListPainter(var1);
- }
-
- private Style getMappingStyle(Object var1) {
- return (Style)((Hashtable)var1).get(RULE);
- }
-
- public float getPointSize(int var1) {
- return this.css.getPointSize(var1);
- }
-
- public float getPointSize(String var1) {
- return this.css.getPointSize(var1);
- }
-
- private synchronized Style getResolvedStyle(String var1) {
- Style var2 = (Style)this.resolvedStyles.get(var1);
- if (var2 == null) {
- var2 = this.createResolvedStyle(var1);
- }
-
- return var2;
- }
-
- private synchronized Style getResolvedStyle(String var1, Vector var2, HTML.Tag var3) {
- Style var4 = (Style)this.resolvedStyles.get(var1);
- if (var4 == null) {
- var4 = this.createResolvedStyle(var1, var2, var3);
- }
-
- return var4;
- }
-
- private Object getRootSelectorMapping() {
- return this.selectorMapping;
- }
-
- public Style getRule(String var1) {
- var1 = this.cleanSelectorString(var1);
- if (var1 != null) {
- Style var2 = this.getResolvedStyle(var1);
- return var2;
- } else {
- return null;
- }
- }
-
- public Style getRule(HTML.Tag var1, Element var2) {
- SearchBuffer var3 = javax.swing.text.html.StyleSheet.SearchBuffer.obtainSearchBuffer();
-
- Style var4;
- try {
- Vector var7 = var3.getVector();
-
- for(Element var8 = var2; var8 != null; var8 = var8.getParentElement()) {
- var7.addElement(var8);
- }
-
- int var9 = var7.size();
- StringBuffer var10 = var3.getStringBuffer();
-
- for(int var14 = var9 - 1; var14 >= 1; --var14) {
- var2 = (Element)var7.elementAt(var14);
- AttributeSet var11 = var2.getAttributes();
- Object var13 = var11.getAttribute(StyleConstants.NameAttribute);
- String var12;
- if (var13 instanceof HTML.Tag) {
- if (var13 == Tag.IMPLIED) {
- var12 = Tag.P.toString();
- } else {
- var12 = var13.toString();
- }
- } else {
- var12 = var13.toString();
- }
-
- var10.append(var12);
- if (var11 != null) {
- if (var11.isDefined(Attribute.ID)) {
- var10.append('#');
- var10.append(var11.getAttribute(Attribute.ID));
- } else if (var11.isDefined(Attribute.CLASS)) {
- var10.append('.');
- var10.append(var11.getAttribute(Attribute.CLASS));
- }
- }
-
- var10.append(' ');
- }
-
- if (var1 == Tag.IMPLIED) {
- var1 = Tag.P;
- }
-
- var10.append(var1.toString());
- var2 = (Element)var7.elementAt(0);
- AttributeSet var20 = var2.getAttributes();
- if (var20 != null) {
- if (var20.isDefined(Attribute.ID)) {
- var10.append('#');
- var10.append(var20.getAttribute(Attribute.ID));
- } else if (var20.isDefined(Attribute.CLASS)) {
- var10.append('.');
- var10.append(var20.getAttribute(Attribute.CLASS));
- }
- }
-
- Style var15 = this.getResolvedStyle(var10.toString(), var7, var1);
- var4 = var15;
- } finally {
- javax.swing.text.html.StyleSheet.SearchBuffer.releaseSearchBuffer(var3);
- }
-
- return var4;
- }
-
- private synchronized Object getSelectorMapping(Object var1, String var2, boolean var3) {
- Hashtable var4 = (Hashtable)((Hashtable)var1).get(var2);
- if (var4 == null && var3) {
- var4 = new Hashtable(7);
- ((Hashtable)var1).put(var2, var4);
- int var5 = 0;
- if (var1 != null) {
- Object var6 = ((Hashtable)var1).get(SPECIFICITY);
- if (var6 != null) {
- var5 = (Integer)var6;
- }
- }
-
- char var8 = var2.charAt(0);
- if (var8 == '.') {
- var5 += 100;
- } else if (var8 == '#') {
- var5 += 10000;
- } else {
- ++var5;
- if (var2.indexOf(46) != -1) {
- var5 += 100;
- }
-
- if (var2.indexOf(35) != -1) {
- var5 += 10000;
- }
- }
-
- var4.put(SPECIFICITY, new Integer(var5));
- }
-
- return var4;
- }
-
- String[] getSimpleSelectors(String var1) {
- var1 = this.cleanSelectorString(var1);
- SearchBuffer var2 = javax.swing.text.html.StyleSheet.SearchBuffer.obtainSearchBuffer();
- Vector var3 = var2.getVector();
- int var4 = 0;
- int var5 = var1.length();
-
- while(var4 != -1) {
- int var6 = var1.indexOf(32, var4);
- if (var6 != -1) {
- var3.addElement(var1.substring(var4, var6));
- ++var6;
- if (var6 == var5) {
- var4 = -1;
- } else {
- var4 = var6;
- }
- } else {
- var3.addElement(var1.substring(var4));
- var4 = -1;
- }
- }
-
- String[] var9 = new String[var3.size()];
- var3.copyInto(var9);
- javax.swing.text.html.StyleSheet.SearchBuffer.releaseSearchBuffer(var2);
- return var9;
- }
-
- private int getSpecificity(Object var1) {
- Object var2 = ((Hashtable)var1).get(SPECIFICITY);
- return var2 != null ? (Integer)var2 : 0;
- }
-
- static int getSpecificity(String var0) {
- int var1 = 0;
- boolean var2 = true;
- int var3 = 0;
-
- for(int var4 = var0.length(); var3 < var4; ++var3) {
- switch (var0.charAt(var3)) {
- case ' ':
- var2 = true;
- break;
- case '#':
- var1 += 10000;
- break;
- case '.':
- var1 += 100;
- break;
- default:
- if (var2) {
- var2 = false;
- ++var1;
- }
- }
- }
-
- return var1;
- }
-
- synchronized Enumeration getStyleSheets() {
- return this.linkedStyleSheets == null ? null : this.linkedStyleSheets.elements();
- }
-
- private synchronized void getStyles(Object var1, Vector var2, String[] var3, String[] var4, String[] var5, int var6, int var7, Hashtable var8) {
- if (!var8.contains(var1)) {
- var8.put(var1, var1);
- Style var9 = this.getMappingStyle(var1);
- if (var9 != null) {
- this.addSortedStyle(var1, var2);
- }
-
- for(int var10 = var6; var10 < var7; ++var10) {
- String var11 = var3[var10];
- if (var11 != null) {
- Object var12 = this.getSelectorMapping(var1, var11, false);
- if (var12 != null) {
- this.getStyles(var12, var2, var3, var4, var5, var10 + 1, var7, var8);
- }
-
- if (var5[var10] != null) {
- String var13 = var5[var10];
- var12 = this.getSelectorMapping(var1, var11 + "." + var13, false);
- if (var12 != null) {
- this.getStyles(var12, var2, var3, var4, var5, var10 + 1, var7, var8);
- }
-
- var12 = this.getSelectorMapping(var1, "." + var13, false);
- if (var12 != null) {
- this.getStyles(var12, var2, var3, var4, var5, var10 + 1, var7, var8);
- }
- }
-
- if (var4[var10] != null) {
- String var18 = var4[var10];
- var12 = this.getSelectorMapping(var1, var11 + "#" + var18, false);
- if (var12 != null) {
- this.getStyles(var12, var2, var3, var4, var5, var10 + 1, var7, var8);
- }
-
- var12 = this.getSelectorMapping(var1, "#" + var18, false);
- if (var12 != null) {
- this.getStyles(var12, var2, var3, var4, var5, var10 + 1, var7, var8);
- }
- }
- }
- }
-
- }
- }
-
- public AttributeSet getViewAttributes(View var1) {
- return new ViewAttributeSet(this, var1);
- }
-
- void importStyleSheet(URL var1) {
- try {
- InputStream var2 = var1.openStream();
- BufferedReader var3 = new BufferedReader(new InputStreamReader(var2));
- CssParser var4 = new CssParser(this);
- var4.parse(var1, var3, false, true);
- ((Reader)var3).close();
- var2.close();
- } catch (Throwable var5) {
- }
-
- }
-
- private synchronized void linkStyleSheetAt(StyleSheet var1, int var2) {
- if (this.resolvedStyles.size() > 0) {
- Enumeration var3 = this.resolvedStyles.elements();
-
- while(var3.hasMoreElements()) {
- ResolvedStyle var4 = (ResolvedStyle)var3.nextElement();
- var4.insertExtendedStyleAt(var1.getRule(var4.getName()), var2);
- }
- }
-
- }
-
- public void loadRules(Reader var1, URL var2) throws IOException {
- CssParser var3 = new CssParser(this);
- var3.parse(var2, var1, false, false);
- }
-
- private synchronized void refreshResolvedRules(String var1, String[] var2, Style var3, int var4) {
- if (this.resolvedStyles.size() > 0) {
- Enumeration var5 = this.resolvedStyles.elements();
-
- while(var5.hasMoreElements()) {
- ResolvedStyle var6 = (ResolvedStyle)var5.nextElement();
- if (var6.matches(var1)) {
- var6.insertStyle(var3, var4);
- }
- }
- }
-
- }
-
- public AttributeSet removeAttribute(AttributeSet var1, Object var2) {
- if (var2 instanceof StyleConstants) {
- CSS.Attribute var3 = this.css.styleConstantsKeyToCSSKey((StyleConstants)var2);
- if (var3 != null) {
- return super.removeAttribute(var1, var3);
- }
- }
-
- return super.removeAttribute(var1, var2);
- }
-
- public AttributeSet removeAttributes(AttributeSet var1, Enumeration var2) {
- return super.removeAttributes(var1, var2);
- }
-
- public AttributeSet removeAttributes(AttributeSet var1, AttributeSet var2) {
- return super.removeAttributes(var1, this.convertAttributeSet(var2));
- }
-
- private void removeMappingStyle(Object var1) {
- ((Hashtable)var1).remove(RULE);
- }
-
- public void removeStyle(String var1) {
- Style var2 = ((StyleContext)this).getStyle(var1);
- if (var2 != null) {
- String var3 = this.cleanSelectorString(var1);
- String[] var4 = this.getSimpleSelectors(var3);
- synchronized(this){}
-
- try {
- Object var7 = this.getRootSelectorMapping();
-
- for(int var8 = var4.length - 1; var8 >= 0; --var8) {
- var7 = this.getSelectorMapping(var7, var4[var8], true);
- }
-
- Style var9 = this.getMappingStyle(var7);
- if (var9 != null) {
- this.removeMappingStyle(var7);
- if (this.resolvedStyles.size() > 0) {
- Enumeration var10 = this.resolvedStyles.elements();
-
- while(var10.hasMoreElements()) {
- ResolvedStyle var11 = (ResolvedStyle)var10.nextElement();
- var11.removeStyle(var9);
- }
- }
- }
- } catch (Throwable var13) {
- throw var13;
- }
- }
-
- super.removeStyle(var1);
- }
-
- synchronized void removeStyleSheet(StyleSheet var1) {
- if (this.linkedStyleSheets != null) {
- int var2 = this.linkedStyleSheets.indexOf(var1);
- if (var2 != -1) {
- this.linkedStyleSheets.removeElementAt(var2);
- this.unlinkStyleSheet(var1, var2);
- if (var2 == 0 && this.linkedStyleSheets.size() == 0) {
- this.linkedStyleSheets = null;
- }
- }
- }
-
- }
-
- void setBase(URL var1) {
- this.base = var1;
- }
-
- public void setBaseFontSize(int var1) {
- this.css.setBaseFontSize(var1);
- }
-
- public void setBaseFontSize(String var1) {
- this.css.setBaseFontSize(var1);
- }
-
- public Color stringToColor(String var1) {
- return CSS.stringToColor(var1);
- }
-
- public AttributeSet translateHTMLToCSS(AttributeSet var1) {
- AttributeSet var2 = this.css.translateHTMLToCSS(var1);
- Style var3 = ((StyleContext)this).addStyle((String)null, (Style)null);
- var3.addAttributes(var2);
- return var3;
- }
-
- private synchronized void unlinkStyleSheet(StyleSheet var1, int var2) {
- if (this.resolvedStyles.size() > 0) {
- Enumeration var3 = this.resolvedStyles.elements();
-
- while(var3.hasMoreElements()) {
- ResolvedStyle var4 = (ResolvedStyle)var3.nextElement();
- var4.removeExtendedStyleAt(var2);
- }
- }
-
- }
- }
-